#ifndef __Maillage__
#define __Maillage__

#pragma once
#include <glew.h>
#include <iostream>
#include <GL/glu.h>
#include <GL/gl.h>
using namespace std;

class Maillage
{
private :

	const	float * m_Vertex;
 	const 	float * m_Normal;

 	// table de mapping
 	const unsigned int * m_Indice;
 
 	const float * m_CoordTexture;
 
 	int m_NbIndice;
	string m_fichierMtl;
 	 
public:
	//============================= LIFECYCLE ====================================
	Maillage(void){};
	Maillage(int nb ){this->m_NbIndice=nb;};
	~Maillage(void){	delete []  this->m_Vertex;
						delete []  this->m_Normal;
						delete []  this->m_Indice;
						delete []  this->m_CoordTexture;
						};
	//============================= ATTRIBUTE ACCESSORS ====================================
	void setFileMtl(string mtl){this->m_fichierMtl=mtl;};
	void setVertexTab(float * vertex ){this->m_Vertex=vertex;};
	void setNormalTab(float * normal ){this->m_Normal=normal;};
	void setCoordTexture(float * coord){this->m_CoordTexture=coord;};
	void setMappingTab(unsigned int * map){this->m_Indice=map;};
	void setnbIndice(int i){this->m_NbIndice=i;};
	
	
	const string getFileMtl(){return this->m_fichierMtl;};
	const float * getVertexTab(){return this->m_Vertex;};
	const float * getNormalTab(){return this->m_Normal;};
	const unsigned int * getMappingTab(){return this->m_Indice;};
	int getnbIndice(){return this->m_NbIndice;};
	const float * getCoordTextTab(){return this->m_CoordTexture;};

	//========================================================================================
	
};
#endif
